In digital cameras and imaging devices using only a single electronic sensor, the image color is captured by sub-sampling typically in three (Red, Green, Blue) color planes. In such cases, the original "raw image" is captured with each "raw image pixel" composed of only one of three vital color/intensity components: either R, G, or B (Red, Green, or Blue). But for image rendering devices (such as a monitor or printer), full color resolution is desirable. Recovery of full color information from this sub-sampled color is popularly known as color interpolation.
The following description refers to raw image pixels as either "pixels" or "raw image pixels". Pixels that are formed by virtue of a completed color interpolation technique will be referred to as "full color pixels". In digital still and video cameras and certain other imaging devices, raw images are first represented as rectangular row and column of pixels with each pixel having the intensity value of a particular color only. In the case of RGB (Red, Green and Blue) sub-sampling imaging devices, images are obtained and stored in a "Bayer" pattern. The Bayer pattern, when three color planes are sub-sampled using a color filter array (CFA), is characterized by including on a first row of an image, alternating pixels of Red and Green, and then on a next row alternating pixels of Blue and Green. Thus, the Bayer pattern for the first four rows of pixels (with each pixel typically an 8-bit value) is as follows (with the rows thereafter repeating the same pattern):
G R G R G R . . . PA1 B G B G B G . . . PA1 G R G R G R . . . PA1 B G B G B G . . .
.cndot. PA2 .cndot. PA2 .cndot.
As a result, each pixel location contains a value for a single color only. Assuming, as is the case in some imaging devices, that each pixel of the Bayer pattern has 8 bits of resolution (i.e., the pixel is a value representing the intensity of the color ranging from 0-255), then a "full color" pixel, one having R, G and B components would be a 24-bit value. To recover the two missing color components for each pixel, a color interpolation or color recovery is employed.
In color interpolation, an attempt is made to combine in some fashion neighboring pixel(s) to reconstruct, recover, or predict missing color component information for a given raw image pixel. Several prior art interpolation methods are described in "Interactions Between Color Plane Interpolation and Other Image Processing Functions in Electronic Photography", James E. Adams, Jr., SPIE, (The International Society for Optical Engineering), Vol. 2416 (Electronic Imaging '95), pages 144-155 (July 1995), with most of these employing pixel averaging techniques to recover missing color components. At its simplest, a prior art averaging technique would interpolate the Red component of the captured Green pixel at row 2, column 2, (referring to the 8-bit Bayer pattern above) as the average of the two nearest red pixels, i.e., Red pixel at row 1, column 2 and the Red pixel at row 3, column 2. Likewise, the Blue component of the same captured Green at row 2, column 2 would be interpolated under an averaging technique as the average of the two nearest Blue pixels, i.e., the pixel at row 2, column 1 and the Blue pixel at row 2, column 3. The Blue and Red interpolated components are then combined with the original captured Green value of the pixel, row 2, column 2 to form a new pixel which is composite "full" color pixel. The resultant "RGB" full color pixel is an approximation or prediction of the original object's true color at that relative pixel location.
This averaging technique is crude in that the most visually critical information, such as edges, are decimated. If the pixel whose missing components are being interpolated lies on a edge boundary, then the averaging of pixels of corresponding color on each side of the boundary may cause that component to be a highly inaccurate version of the actual uncaptured color component. The edge, for that component would thus disappear. The response of the human visual system (eye, brain, etc.) to edge information is very acute, and thus, the blurriness of edge(s) will greatly detract from the perceived overall quality (sharpness, resolution, etc.) of an image. Further, other averaging techniques that attempt to detect patterns or edges are complex to implement in high-speed rendering applications. In these techniques, different formulas for averaging known as predictors are employed even within the same image depending on detected local patterns within the image. These techniques are not very efficient and further, if color components are interpolated when the pixels are being output, these techniques slow down the process of displaying or rendering pixels of an image into a display device. Averaging techniques produces images that are "soft" and not very crisp when viewed. Further "luminance" information contained in the Green pixels (which comprise 50% of the image according to the Bayer pattern) are a less significant factor than they should be when interpolation is carried out in the prior art techniques. The luminance information is greatest in Green pixels since Green is already a combination of two primary colors, Yellow and Blue. Thus, in terms of visual perception, Green contains more information about the original color of an area of pixels or pixel in the image than do Blue or Red pixels.
Thus, there is a need for an efficient color interpolation technique that more accurately reconstructs the original object color by taking into better account luminance information contained in Green pixels.